<?php

/**
 * Green Calc
 * Calcs Main View for Calc Component
 * 2009-2014 All rights reserved
 * @link http://www.greenkey.ru
 * @license GNU/GPL v3
 */
// No direct access
defined('_JEXEC') or die('Restricted access');

// Подключаем библиотеку представления Joomla.
jimport('joomla.application.component.view');

/**
 * Calcs View
 *
 */
class CalcViewCalcs extends JViewLegacy {

    /**
     * Calcs list
     * Список расчетов
     */
    protected $items;

    /**
     * Pagination
     * Постраничная навигация
     */
    protected $pagination;

    /**
     * Состояние модели.
     *
     * @var  object
     */
    protected $state;

    /**
     * Доступы пользователя.
     *
     * @var  object
     */
    protected $canDo;

    /**
     * Calcs view display method
     * @return void
     * */
    function display($tpl = null) {

        try {
            // Get data from the model
            // Получаем данные из модели
            $this->items = $this->get('Items');

            // Get pagination
            // Получаем объект постраничной навигации.
            $this->pagination = $this->get('Pagination');

            // Получаем доступы пользователя.
            $this->canDo = CalcHelper::getActions();

            // Получаем объект состояния модели.
            $this->state = $this->get('State');

            // Get filter form.
            $this->filterForm = $this->get('FilterForm');

            // Get active filters.
            $this->activeFilters = $this->get('ActiveFilters');


            // Устанавливаем панель инструментов.
            $this->addToolBar();
            // Устанавливаем боковую панель. Joomla 3
            $this->sidebar = JHtmlSidebar::render();

            // Отображаем
            parent::display($tpl);
        } catch (Exception $e) {
            //throw new Exception($e->getMessage());
            JFactory::getApplication()->enqueueMessage(JText::_('COM_CALC_ERROR_OCCURRED'), 'error');
            JLog::add($e->getMessage(), JLog::ERROR, 'com_calc');
        }
    }

    /**
     * Устанавливает панель инструментов.
     * @return void
     */
    protected function addToolBar() {
        JToolBarHelper::title(JText::_('COM_CALC_MANAGER'), '20-calc');

        if ($this->canDo->get('core.create')) {
            JToolBarHelper::addNew('calc.add');
        }
        if ($this->canDo->get('core.edit')) {
            JToolBarHelper::editList('calc.edit');
        }

        if ($this->canDo->get('core.edit.state')) {
            JToolBarHelper::divider();
            JToolbarHelper::publish('calcs.publish', 'JTOOLBAR_PUBLISH', true);
            JToolbarHelper::unpublish('calcs.unpublish', 'JTOOLBAR_UNPUBLISH', true);
            JToolBarHelper::divider();
            JToolBarHelper::archiveList('calcs.archive');
        }

        if ($this->state->get('filter.state') == -2 && $this->canDo->get('core.delete')) {
            //JToolBarHelper::divider();
            JToolBarHelper::deleteList('', 'calcs.delete', 'JTOOLBAR_EMPTY_TRASH');
        } elseif ($this->canDo->get('core.edit.state')) {
            //JToolBarHelper::divider();
            JToolBarHelper::trash('calcs.trash');
        }

        if ($this->canDo->get('core.admin')) {
            JToolBarHelper::divider();
            JToolBarHelper::preferences('com_calc');
        }
    }

}
